---
layout: default
use_dark_highlighting: true
---

<section class="main jumbotron">
  <section class="main jumbotron"></section> <!-- hack to move everything down, without increasing padding -->
  <section class="content">
    <div class="pure-g">
      <div class="pure-u-1 main-block">
        <h1>高效、凝练、优雅</h1>
      </div>
      <div class="pure-u-1 pure-u-md-3-5 main-block">
        <h2>
          Nim是一种静态类型编译的系统编程语言。<br>
          它结合了其他成熟语言的成功概念。<br>
          （如Python、Ada和Modula）
        </h2>
        <h3>高效</h3>
        <ul>
          <li>
            Nim生成原生且无依赖的可执行文件，不依赖于虚拟机，
            <br>
            所以它们小巧，便于分发。
          </li>
          <li>
            Nim编译器和生成的可执行文件，对目前的任何主流平台都提供了支持，
            <br>
            包括Windows、Linux、BSD和macOS。
          </li>
          <li>
            支持实时系统的快速延迟引用计数内存管理。
          </li>
          <li>
            零开销迭代器和用户自定义方法的编译期求值等现代概念，
            <br>
            结合优先使用分配在栈上的值类型数据，生成高性能代码。
          </li>
          <li>
            支持各种后端：可以被编译为C、C++或JavaScript，
            所以Nim可以满足所有前后端的需求。
          </li>
        </ul>
        <h3>凝练</h3>
        <ul>
          <li>Nim实现了自包含：编译器和标准库都是用Nim本身来实现的。</li>
          <li>Nim拥有强大的宏系统，允许直接操纵AST，提供无限的可能性。</li>
        </ul>
        <h3>优雅</h3>
        <ul>
          <li>
            不需要宏去改变Nim的语法 <br>
            —— Nim语法本身已经足够灵活。
          </li>
          <li>具有局部类型推断、元组、泛型和sum类型的现代类型系统。</li>
          <li>语句按缩进分组，也可以跨行。</li>
        </ul>

        <div class="text-centered">
          <a class="pure-button pure-button-primary" href="{{ site.baseurl }}/install.html">安装</a>
          <a class="pure-button" href="{{ site.baseurl }}/learn.html">开始学习Nim</a>
        </div>
      </div>

      <div class="pure-u-1 pure-u-md-2-5">
        {% highlight nim %}
import strformat

type
  Person = object
    name: string
    age: Natural # 确保年龄是正确的

let people = [
  Person(name: "John", age: 45),
  Person(name: "Kate", age: 30)
]

for person in people:
  # 类型安全的字符串插值,
  # 会在编译时检查。
  echo(fmt"{person.name} is {person.age} years old")
        {% endhighlight %}

        {% highlight nim %}
# 得益于Nim的“iterator”和“yield”结构，
# 迭代器和常规方法一样容易编写。
# 它们会被编译为内联循环。
iterator oddElements[Idx, T](a: array[Idx, T]): T =
  var i = 1
  while i < a.len:
    yield a[i]
    i += 2

for x in oddElements([10, 20, 30, 40, 50, 60]):
  echo x
        {% endhighlight %}


        {% highlight nim %}
# 使用Nim的宏系统
# 将密集的以数据为中心的x86指令描述
# 转换为汇编程序和JIT所使用的查找表。
import macros, strutils

macro toLookupTable(data: static[string]): untyped =
  result = newTree(nnkBracket)
  for w in data.split(';'):
    result.add newLit(w)

const
  data = "mov;btc;cli;xor"
  opcodes = toLookupTable(data)

for o in opcodes:
  echo o
        {% endhighlight %}

        <div class="text-centered">
          <a href="http://rosettacode.org/wiki/Category:Nim">更多的示例可访问RosettaCode……</a>
        </div>

      </div>
    </div>
  </section>
</section>

<section class="content">
  <h1 class="section-heading">最新文章</h1>
  <div class="pure-g">
    {% for post in site.posts limit: 2 %}
    <div class="news-item pure-u-1 pure-u-md-1-2">
      <div class="post-meta">
        <span>
          <i class="far fa-calendar-alt" aria-hidden="true"></i>
          {{ post.date | date_to_long_string }}
        </span>
      </div>
      <h2>
        <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title | escape }}</a>
      </h2>
      {{ post.excerpt }}
    </div>
    {% endfor %}
  </div>
  <div class="text-centered">
  <a class="pure-button" href="{{ "/blog.html" | prepend: site.baseurl }}">所有文章</a>
  </div>
</section>

<section class="background-faded call-to-action feature-projects">
  <section class="content">
    <h1 class="section-heading">特色项目</h1>
    <div class="pure-g center">

      <div class="pure-u-1-1 pure-u-md-1-2">
        <div class="project-container">
          <h2>
            <a href="https://github.com/pragmagic/karax">Karax</a>
          </h2>
          <span class="tag">SPA框架</span>
          <p>
            Karax是一个使用Nim开发单页应用的框架。
            利用Nim的宏系统生成一个框架，允许开发无样板的应用程序。
          </p>
        </div>
      </div>

      <div class="pure-u-1-1 pure-u-md-1-2">
        <div class="project-container">
          <h2>
            <a href="https://github.com/status-im/nimbus">Nimbus</a>
          </h2>
          <span class="tag">以太坊客户端</span>
          <p>
              Nimbus旨在成为以太坊2.0区块链的分片客户端。
              以太坊可能会构建在嵌入式系统中，
              而Nimbus的设计使它将能够在物联网和个人移动设备上也有良好的表现。
          </p>
        </div>
      </div>

    </div>
    <div class="text-centered">
      <a class="pure-button pure-button-primary" href="https://github.com/trending/nim">发现更多项目</a>
    </div>
  </section>
</section>

<section class="content center-banner">
  <h1 class="section-heading">
    <i class="fa fa-graduation-cap fa-2x" aria-hidden="true"></i>
    从今天开始学习Nim吧
  </h1>
  <div class="pure-g center">
    <div class="pure-u-1-2">
      <h3>
        构建命令行应用程序、游戏、Web服务器、内核以及其他所有内容。 
        Nim不仅学习门槛不高，还能为你提供许多主流编程语言所不具备的强大功能。
      </h3>
    </div>
    <div class="pure-u-1 center">
      <a class="pure-button" href="{{ site.baseurl }}/learn.html">立即开始</a>
    </div>
  </div>
</section>

<section class="jumbotron" id="book">
  <section class="content">
    <div class="pure-g">
      <div class="pure-u-1 pure-u-md-2-5">
        <img height="470px" class="pure-img" src="{{ site.baseurl }}/assets/img/nim_in_action_cover.jpg"/>
      </div>
      <div class="pure-u-1 pure-u-md-3-5 main-block">
        <h1>Nim in Action</h1>
        <h3>
          第一本Nim图书，《Nim in Action》, 现已提供电子书或纸质书购买。
          学习Nim的语法和高级功能（包括宏）等基础知识，
          并通过多个应用程序开发示例获得该语言的实践经验。
        </h3>
        <ul>
          <li>讲解基础知识，包括Nim的语法。</li>
          <li>说明如何使用Nimble包管理器。</li>
          <li>
            包括如何开发各种应用程序的分步说明和解释，涵盖了聊天程序，Twitter克隆等。
          </li>
        </ul>
      </div>
      <div class="pure-u-1 center">
        <a class="pure-button pure-button-primary" href="https://book.picheta.me/">了解更多</a>
      </div>
    </div>
  </section>
</section>

<section class="content center-banner">
  <h1 class="section-heading">
    <img height="100px" src="{{ site.baseurl }}/assets/img/piggy.svg"/>
    支持Nim
  </h1>
  <div class="pure-g center">
    <div class="pure-u-1-2">
      <h2>加入支持Nim的100多家公司和个人</h2>
      <h3>
          Nim项目由一群分布在全球的志愿者开发。
          我们欢迎捐款，这使我们能够花更多的时间工作在Nim上。
      </h3>
    </div>
    <div class="pure-u-1 center">
      <a class="pure-button pure-button-primary" href="{{ site.baseurl }}/donate.html">捐赠</a>
    </div>
  </div>
</section>

<section class="background-faded call-to-action">
  <section class="content text-centered">
    <h1>顶级赞助商</h1>
    <div class="pure-g center">
      <div class="pure-u-2-3">
        {% for sponsor in site.data.sponsors %}
          {% if sponsor.level == "250" %}
            <div class="sponsor-container">
              <a href="{{sponsor.url}}">
                <img src="{{ site.baseurl }}{{sponsor.logo}}"/>
                <br>
                <span class="green tag">+${{sponsor.this_month}}/月</span>
                <p class="title">{{sponsor.name}}</p>
              </a>
            </div>
          {% endif %}
        {% endfor %}
      </div>
    </div>
    <a class="pure-button" href="{{ site.baseurl }}/sponsors.html">查看更多</a>
  </section>
</section>

<section class="jumbotron" id="community">
  <section class="content">
    <h1>社区</h1>
    <div class="pure-g">
      <div class="pure-u-1 pure-u-md-1-4">
        <h2>即时聊天</h2>
        
        <!-- 中文 -->
        <p>
          <a href="//shang.qq.com/wpa/qunwpa?idkey=5b713c470506775a2250d98918a6120f3fc87dccc1e202e4a182b5c3196807e1">
            <i class="fab fa-qq"></i>
            QQ/Nim中文社区
          </a>
        </p>
        <p><a href="https://jq.qq.com/?_wv=1027&k=50EQ6eZ"><i class="fab fa-qq"></i>QQ/Nim开发集中营</a></p>
      </div>

      <div class="pure-u-1 pure-u-md-1-4">
        <h2>论坛</h2>
        
        <!-- 中文 -->
        <p>
          <a href="https://forum.nim-lang-cn.org/">
            <i class="fa fa-globe" aria-hidden="true"></i>Nim中文论坛
          </a>
        </p>
        
      </div>

      <div class="pure-u-1 pure-u-md-1-4">
        <h2>媒体</h2>
        <p>
          <a href="https://nim-lang-cn.org/blog.html">
          <i class="fa fa-bullhorn" aria-hidden="true"></i>博客</a>
        </p>
        <p>
          <a href="https://nim-lang-cn.org/feed.xml">
            <i class="fa fa-rss" aria-hidden="true"></i>RSS</a>
        </p>
        <p>
          <a href="https://weibo.com/nimlangcn?is_hot=1">
            <i class="fab fa-weibo" aria-hidden="true"></i>@Nim中文社区</a>
        </p>
        <p>
          <a>
            <i class="fab fa-weixin" aria-hidden="true"></i>Nim中文社区 公众号</a>
        </p>
      </div> 

      <div class="pure-u-1 pure-u-md-1-4">
        <h2>中文社区邮件组</h2>
        <p>
          <a href="mailto:ch4o5@nim-lang-cn.org">
            <i class="fa fa-envelope" aria-hidden="true"></i>ch4o5@nim-lang-cn.org
          </a>
        </p>
        <p>
          <a href="mailto:sheldon@nim-lang-cn.org">
            <i class="fa fa-envelope" aria-hidden="true"></i>sheldon@nim-lang-cn.org
          </a>
        </p>
        <p>
          <a href="mailto:flywind@nim-lang-cn.org">
            <i class="fa fa-envelope" aria-hidden="true"></i>flywind@nim-lang-cn.org
          </a>
        </p>
        <p>
          <a href="mailto:tulayang@nim-lang-cn.org">
            <i class="fa fa-envelope" aria-hidden="true"></i>tulayang@nim-lang-cn.org
          </a>
        </p>
      </div>

      <div class="pure-u-1 center">
        <p><a class="pure-button" href="{{ site.baseurl }}/community.html">通过任何你喜欢的方式加入我们的社区</a></p>
      </div>
    </div>

  </section>
</section>

<section class="content center-banner">
  <h1 class="section-heading">
    <i class="fab fa-github fa-2x" aria-hidden="true"></i>
    在寻找GitHub上的Nim存储库吗？
  </h1>
  <div class="pure-g center">
    <div class="pure-u-1-2">
      <h3>
        Nim编译器和工具全部由Nim编写，并遵从MIT开源许可，
        烦请务必对存储库点个WATCH以及时获取Nim开发的最新进展，或者点个Star来给它提升一些关注。 
      </h3>
    </div>
    <div class="pure-u-1 center">
      <a class="pure-button" href="https://github.com/nim-lang/Nim">源码</a>
    </div>
  </div>
</section>
